18 Programming
There are several ways to
“program” the Emacs Calculator, depending on the
nature of the problem you need to solve.
- Keyboard macros allow you to record a sequence
of keystrokes and play them back at a later time. This is just
the standard Emacs keyboard macro mechanism, dressed up with a
few more features such as loops and conditionals.
- Algebraic definitions allow you to use any
formula to define a new function. This function can then be
used in algebraic formulas or as an interactive command.
- Rewrite rules are discussed in the section on
algebra commands. See Rewrite Rules. If you
put your rewrite rules in the variable
EvalRules,
they will be applied automatically to all Calc results in just
the same way as an internal “rule” is applied to
evaluate ‘sqrt(9)’ to 3 and so on. See
Automatic
Rewrites.
- Lisp is the programming language that Calc (and
most of Emacs) is written in. If the above techniques aren't
powerful enough, you can write Lisp functions to do anything
that built-in Calc commands can do. Lisp code is also somewhat
faster than keyboard macros or rewrite rules.
Programming
features are available through the z and Z
prefix keys. New commands that you define are two-key sequences
beginning with z. Commands for managing these
definitions use the shift-Z prefix. (The Z
T (calc-timing) command is described
elsewhere; see Troubleshooting
Commands. The Z C
(calc-user-define-composition) command is also
described elsewhere; see
User-Defined Compositions.)